/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.monopoly.sviluppo;

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Random;
import org.monopoly.comunicazione.Elemento;
import org.monopoly.comunicazione.Messaggio;

/**
 *
 * @author Administrator
 */
public class Cliente extends Thread{

    static Random r = new Random();
    SviluppoCliente gui = null;

    public Cliente(SviluppoCliente gui){
        this.gui = gui;
    }

    @Override
    public void run() {
        try{
        Socket s = new Socket("localhost", 1111);
        ObjectOutputStream o = new ObjectOutputStream(s.getOutputStream());
        ObjectInputStream i = new ObjectInputStream(s.getInputStream());
        Messaggio m = new Messaggio();
        m.setAzione("Login");
        m.getParametri().add(new Elemento("Username", "Pippo_" + r.nextInt()));
        m.getParametri().add(new Elemento("Password", "Pippo"));
        m.getParametri().add(new Elemento("Email", "pippo@pippo.ch"));
        m.getParametri().add(new Elemento("Nazionalita", "CH"));
        m.getParametri().add(new Elemento("Lingua", "it"));
        o.writeObject(m);
        o.flush();

        Messaggio mi = (Messaggio)i.readObject();
        mi.stampa();
        if(mi.getParametri().get(0).equals("Vero")){
            System.out.println("Sono autenticato!!!");
        }

        //Da qui in poi gestisco le chiamate e gli invii da parte del client
        while(true){
            Thread.sleep(10);
            if (s.getInputStream().available() != 0) {
                //È arrivato un messaggio
                Object obj = i.readObject();
                Messaggio arrivo = (Messaggio) obj;
                arrivo.stampa();
                if("ListaStanzeRisposta".equals(arrivo.getAzione())){
                    gui.aggiornaListaStanze(arrivo);
                }
            }
        }


        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
}
